package com.employment.dto;

import lombok.Data;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 简历创建/更新DTO
 * 
 * @author Employment System
 * @since 1.0.0
 */
@Data
public class ResumeDTO {

    /**
     * 简历ID（更新时需要）
     */
    private Long resumeId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 简历标题
     */
    private String title;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    private String name;

    /**
     * 性别：0女，1男
     */
    private Integer gender;

    /**
     * 出生日期
     */
    private LocalDate birthDate;

    /**
     * 手机号
     */
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;

    /**
     * 邮箱
     */
    @NotBlank(message = "邮箱不能为空")
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 现居城市
     */
    private String currentCity;

    /**
     * 籍贯
     */
    private String hometown;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 求职状态：1在职-看机会，2在职-急寻新工作，3离职-正在找工作
     */
    private Integer jobStatus;

    /**
     * 期望薪资最低
     */
    private BigDecimal expectedSalaryMin;

    /**
     * 期望薪资最高
     */
    private BigDecimal expectedSalaryMax;

    /**
     * 期望工作城市
     */
    private String expectedCity;

    /**
     * 期望职位
     */
    private String expectedPosition;

    /**
     * 期望行业
     */
    private String expectedIndustry;

    /**
     * 自我介绍
     */
    private String selfIntroduction;

    /**
     * 专业技能
     */
    private String skills;

    /**
     * 个人优势
     */
    private String advantages;

    /**
     * 兴趣爱好
     */
    private String hobby;

    /**
     * 简历附件地址
     */
    private String attachment;

    /**
     * 是否公开：0不公开，1公开
     */
    private Integer isPublic;
}